SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROC  [dbo].[SP_TXMVTO_CNTB_Q61]
 /*-------------------------------------------------------------------*/                       
 /*----- Empresa           : OFISIS S.A.                          ----*/                       
 /*----- Cliente           : OFISIS S.A.                          ----*/                       
 /*----- Sistema           : Contabilidad                         ----*/                       
 /*----- Modulo            : Empresa                              ----*/                       
 /*----- Programa          : Registro de HONORARIOS PROFESIONALES Y CERTIFICADO----*/                       
 /*----- Nombre            : SP_TXMVTO_CNTB_Q61                   ----*/                       
 /*----- Script            : TXMVTO_CNTB                          ----*/                       
 /*----- Desarrollado por  : PDGV                                 ----*/                       
 /*----- Fecha  Creaci?n   : 09/01/2007                            ----*/                       
 /*----- Base de Datos     : MS SQL Server                        ----*/                       
 /*----- Version BD        : 8.0                                  ----*/                       
 /*-------------------------------------------------------------------*/      
 /*-------------------------------------------------------------------*/             
 /*----- Modificado 1   : CEQN                                 ----*/
/*----- Fecha   : 27/09/2008                           ----*/
/*----- Detalle   : NUEVO FORMATO DE REPORTE             ----*/
/*-------------------------------------------------------------------*/             
/*-------------------------------------------------------------------*/               
/*--- modificado 2 : percy garcia --*/
/*--- fecha modif : 12/08/2010--*/
/*--- detalle modif : se corrigio para el caso que saca el reporte para contabilidad 2 DOL 
y haya RXH en DOL pero su impuestop de retencion de cuarta sea en soles ---*/
/*-------------------------------------------------------------------*/               
 /*-------------------------------------------------------------------*/                
 /*----- Drop proc SP_TXMVTO_CNTB_Q61                             ----*/   
 /*----- Grant all on SP_TXMVTO_CNTB_Q61 to PUBLIC                ----*/                       
 /*-----   

EXEC SP_TXMVTO_CNTB_Q61 '99', 1, 2008, 12, 12,'R','H', '', "   And TXMVTO_CNTB.TI_DOCU in ( '02') ", 'R','N'

  ----*/   
 /*-------------------------------------------------------------------*/                       
@ISCO_EMPR        TD_VC_002 ,                       
@INNU_CNTB_EMPR   TD_IN_001_CONT ,                       
@INNU_ANNO        TD_IN_004_ANNO ,                       
@INNU_MESE_INIC   TD_IN_002_MESE ,                       
@INNU_MESE_FINA   TD_IN_002_MESE ,                       
@ISTI_PRES        TD_VC_001 ,       --  'D' DETALLE 'R' RESUMEN 
 @ISTI_REPO        TD_VC_001 ,       -- 'H' HONORARIOS 'C' CERTIFICADO
 @IDFE_CERT        TD_DT_001 ,
 @ISCA_WHER_LOCA    VARCHAR ( 2000 ),
 @ISDE_ORDE_0001   TD_VC_001 ,  
@ISFL_IMPU        TD_VC_001
 AS   
                      
 DECLARE                        
@VSNU_ASTO_BASE    CHAR ( 18 ),                       
@VSCO_MONE_BASE   TD_VC_003 ,              
@VSCO_MONE_BAS1   TD_VC_003 ,                       
@VNIM_TOTA_BASX   TD_NU_016_004 ,                       
@VNIM_TOTA_BASY   TD_NU_016_004 ,                       
@VDFE_DOCU   TD_DT_001 ,                       
@VSTI_DOCU_CNTB   TD_VC_003 ,                       
@VSNU_DOCU   TD_VC_020 ,                       
@VSCO_UNID   TD_VC_003 ,                       
@VSCO_OPRC   TD_VC_003 ,                       
@VSNU_ASTO   TD_VC_010 ,                       
@VSCO_PROV   TD_VC_020 ,                       
@VSNO_CORT_PROV   TD_VC_050 ,                       
@VSNU_RUCS_PROV   TD_VC_020 ,                       
@VSCO_DOCU_SUNA   TD_VC_020 ,                       
@VSNU_DOCU_SUNA   TD_VC_020 ,                       
@VSCO_MONE   TD_VC_003 ,                       
@VNIM_INAF_ORIX   TD_NU_016_004 ,                       
@VNIM_AFEC_ORIX   TD_NU_016_004 ,                       
@VNIM_IIGV_ORIX   TD_NU_016_004 ,                       
@VNIM_FONA_ORIX   TD_NU_016_004 ,                       
@VNIM_RENT_ORIX   TD_NU_016_004 ,                       
@VNIM_TOTA_ORIX   TD_NU_016_004 ,                       
@VNIM_INAF_CNTX   TD_NU_016_004 ,                       
@VNIM_AFEC_CNTX   TD_NU_016_004 ,                       
@VNIM_IIGV_CNTX   TD_NU_016_004 ,                       
@VNIM_FONA_CNTX   TD_NU_016_004 ,                       
@VNIM_RENT_CNTX   TD_NU_016_004 ,                       
@VNIM_TOTA_CNTX   TD_NU_016_004 ,                       
@VNFA_CAMB   TD_NU_009_004 ,                       
@VNIM_IIGV_ORIG   TD_NU_016_004 ,                       
@VNIM_FONA_ORIG   TD_NU_016_004 ,                       
@VNIM_RENT_ORIG   TD_NU_016_004 ,                       
@VNIM_TOTA_ORIG   TD_NU_016_004 ,                       
@VNIM_IIGV_CNTB   TD_NU_016_004 ,                       
@VNIM_FONA_CNTB   TD_NU_016_004 ,                       
@VNIM_RENT_CNTB   TD_NU_016_004 ,                       
@VNIM_TOTA_CNTB   TD_NU_016_004 ,                       
                      
@CNPO_IGV1        TD_NU_009_004 ,                       
@CNPO_IGV2   TD_NU_009_004 ,                       
@CNPO_REN1   TD_NU_009_004 ,                       
@CNPO_REN2   TD_NU_009_004 ,                       
                      
@VSCO_OPR1   TD_VC_003 ,                       
@VSCO_OPR2   TD_VC_003 ,                       
@VSID_COMP    TD_VC_003 ,                       
@VSID_IIGV    TD_VC_003 ,                       
@VSID_FONA    TD_VC_003 ,                   
@VSID_RENT    TD_VC_003 ,                       
@VSID_CUAR    TD_VC_003 ,                       
@VSTI_DOCU_AUXI    CHAR ( 06 ),                       
@VSCO_SUNA        TD_VC_002 ,                       
@CSID_CNTA    TD_VC_003 ,                       
@CDFE_DOCU   TD_DT_001 ,                  
@CSTI_DOCU_CNTB   TD_VC_003 ,                       
@CSNU_DOCU   TD_VC_020 ,         @CSCO_UNID   TD_VC_003 ,                       
@CSCO_OPRC   TD_VC_003 ,                       
 --@CSNU_ASTO   TD_VC_010,                      
 @CSCO_AUXI   TD_VC_020 ,                       
@CSCN_CNTB_EMPR   TD_VC_010 ,                       
@CSTI_OPER_CNTB   TD_VC_003 ,                       
@CSCO_MONE   TD_VC_003 ,                       
@CNFA_CAMB   TD_NU_009_004 ,                       
@CNIM_MVTO_ORIG   TD_NU_016_004 ,                       
@CNIM_MVTO_CNTB   TD_NU_016_004 ,                       
@CSNU_DOCU_REFE   TD_VC_020 ,                       
@CDFE_DOCU_REFE TD_DT_001 ,                       
                      
@VSNO_DOCU        TD_VC_050 ,                       
@CSTI_AUXI_EMPR   TD_VC_001 ,                       
@VSST_RETE_DOCU   TD_VC_001 ,                       
@VSST_RETE_AUXI   TD_VC_001 ,                       
@VNIM_MAXI_NRET   TD_NU_016_004 ,                       
@VSST_STAT        TD_VC_001 ,                       
@VSST_BCON_AUXI   TD_VC_001 ,                       
@VSST_DETR        TD_VC_001 ,                       
                      
                      
@VSNU_DOCU_REFE   TD_VC_020 ,                       
@VDFE_DOCU_REFE   TD_DT_001 ,                       
                      
@VNIM_MVTO_CNTB   TD_NU_016_004 ,                       
@CSNU_ASTO   TD_VC_010 ,                       
@CSCO_OPRC_CNTB   TD_VC_003 ,                       
@VNIM_TOTA   TD_NU_016_004 ,                       
@CSCO_UNID_CNTB   TD_VC_003 ,                       
 ----------------------------------------                      
 @VSNU_CNTB_EMPR  TD_VC_001 ,                       
@VSNU_ANNO       TD_VC_004 ,                       
@VSNU_MESE_INIC  TD_VC_002 ,                       
@VSNU_MESE_FINA  TD_VC_002 ,                       
@VSCO_SUNA_NOCR  TD_VC_002 ,                       
@VSCO_SUNA_0001  TD_VC_002 ,                       
@VNNU_MESE       TD_IN_002_MESE ,                       
@CNNU_MESE       TD_IN_002_MESE ,                       
                      
@VNPO_IGV1        TD_NU_009_004 ,                       
@VNPO_IGV1_ANNO   TD_NU_009_004 ,                       
@VNPO_IGV2_ANNO   TD_NU_009_004 ,                       
@VNPO_REN1        TD_NU_009_004 ,                       
@VNPO_REN2        TD_NU_009_004 ,                       
@CSTI_DOCU_REFE   TD_VC_003 ,                     
@VSTI_DOCU   TD_VC_003 ,                     
@VDFE_DOCU_0001  TD_DT_001 ,                     
@VSNU_DOCU_0001  TD_VC_020 ,                     
@VNPO_IGV2   TD_NU_009_004 ,                   
                  
@VNPO_IGV1_0001        TD_NU_009_004 ,   --segun el tipo de igv               
 @CSCO_EMPR   TD_VC_002 ,    -- para la empresa                  
                 
@VNID_IIES TD_IN_001 ,   -- ID IES                
 @VNID_IIGV TD_IN_001 ,   -- ID IGV                
 @VNID_COMP TD_IN_001 ,   -- ID COMPRAS     
 @VNID_RENT TD_IN_001 ,   -- ID IMP. RENTA                
 @VNID_NDOM TD_IN_001 ,   -- ID IMP. RENTA NO DOMICILIADO  
 @VNID_GAST TD_IN_001 ,   -- ID GASTO NO GRAVABLE  
 @VNIM_IIES_ORIG TD_NU_016_004 ,    -- IMPORTE IES                
 @VNIM_IIES_CNTX TD_NU_016_004 ,    -- IMPORTE IES                
 @VNIM_TOTA_ORIG_AUXI TD_NU_016_004 ,     -- IMPORTE IES                
 @VNIM_TOTA_CNTB_AUXI TD_NU_016_004 ,     -- IMPORTE IES                
 @CDFE_ASTO_CNTB TD_DT_001 ,                
@VDFE_ASTO_CNTB TD_DT_001 ,                
@CSTI_CAMB TD_VC_003 ,                
@VSTI_CAMB_BASE TD_VC_003 ,    --- ES DE LA CTA '42X'              
 @VNIM_0001 TD_NU_016_004 ,              
@VSCO_EMPR_0001 TD_VC_002 ,              
            
 /*-----*/               
@VNIM_TOTA_CONT TD_NU_016_004 ,             
@VNIM_IIGV_CONT TD_NU_016_004 ,             
@VNIM_CONT_BASX TD_NU_016_004 ,                            
@VNIM_CONT_BASY TD_NU_016_004 ,       
@VNIM_AFEC_CONX TD_NU_016_004 ,             
@VNIM_INAF_CONX TD_NU_016_004 ,      
@VNIM_FONA_CONT TD_NU_016_004 ,              
@VNIM_RENT_CONT TD_NU_016_004 ,           
@VNIM_IIES_CONT TD_NU_016_004 ,             
@VNIM_TOTA_CONT_AUXI TD_NU_016_004 ,          
@VNIM_BASE_RXHH TD_NU_016_004 ,          
  
@VNIM_RENO_ORIG TD_NU_016_004 ,          
@VNIM_RENO_CONT TD_NU_016_004 ,          
@VNIM_RENO_ORIX TD_NU_016_004 ,          
@VNIM_RENO_CNTX TD_NU_016_004 ,          
@VNIM_BASE_NDOM TD_NU_016_004 ,     
@VNIM_GAST_ORIG TD_NU_016_004 ,          
@VNIM_GAST_CONT TD_NU_016_004 ,         
@CSST_CNTA_CAMB TD_VC_003 ,   
@VSID_RENT_NDOM TD_VC_003 ,   
@VSID_GAST_NGRA TD_VC_003 ,   
@VSCO_SUNA_VARI TD_VC_002 ,   
@VDFE_0001         TD_DT_001 ,   
@VSCO_SUNA_LIQU    TD_VC_002 ,   
@VSCO_SUNA_POLI    TD_VC_002 ,   
@VSCO_SUNA_SERV    TD_VC_002 ,   
@VDFE_PAGO         TD_DT_001 ,   
@VDFE_VENC_PAGO    TD_DT_001 ,
 @CDFE_DOCU_VENC    TD_DT_001 ,   
@VSTI_PERS_SUNA    TD_VC_003 ,   
@CNFA_CAMB_DIAR    TD_NU_009_004 ,
 @VNFA_CAMB_DIAR    TD_NU_009_004 ,
 @VSCO_MONE_NACI    TD_VC_003 ,
 @CSNU_DOCU_REF1     VARCHAR ( 30 ),
 @VSNU_DOCU_REF1     VARCHAR ( 30 ),
 @VSID_IIGV_PAPL    TD_VC_003 ,
 @VNIM_POAP_ORIG    TD_NU_016_004 ,  
@VNIM_POAP_CONT    TD_NU_016_004 ,
 @VNIM_POAP_ORIX    TD_NU_016_004 ,
 @VNIM_POAP_CNTX    TD_NU_016_004 ,
 @VNIM_TOTA_VARI    TD_NU_016_004 ,
 @VNIM_AJUS_CNTB    TD_NU_016_004 ,
 @VSID_0001         TD_VC_003 ,
 @VNIM_TOTA_VARI_AUXI TD_NU_016_004 ,  
@VSDE_DIRE_0001     VARCHAR ( 200 ),
 @CSDE_GLOS_0001     VARCHAR ( 100 ),
 @VSDE_GLOS_0001     VARCHAR ( 100 ),
 @VSDE_EMPR_FORM  TD_VC_050 ,  
@VSNU_RUCS_FORM  TD_VC_020 ,
 @VSNO_REPR_FORM  TD_VC_050 ,
 @VSDE_DIRE_FORM  TD_VC_100 ,
 @VSSB_MONE_0001  TD_VC_010 ,
 @VSNU_DNNI_REPR  TD_VC_020 ,  
@VSNO_UBIC_GEOG  TD_VC_050 ,  
@VSDE_MONE       TD_VC_050 ,
 @VNNU_MESE_0001   INT ,  
@VSDE_ORDE_0001  TD_VC_100 ,
 @VSNU_ANNO_0001   VARCHAR ( 4 ),
 @VDFE_CERT_0001   VARCHAR ( 20 ),
 @VSCA_WHER_0001   VARCHAR ( 8000 )

 CREATE   TABLE  #TWMVTO_ERDP_Q20_1                      
 ( CO_EMPR   VARCHAR ( 5 )   NULL,   --para el crosstab                  
  NU_MESE   INT   NULL,
  FE_DOCU         datetime         NULL,    
 TI_DOCU_SUNA   CHAR ( 02 )         NULL,                       
 TI_DOCU_CNTB    CHAR ( 03 )         NULL,                       
 NO_DOCU         VARCHAR ( 50 )      NULL,                       
 NU_DOCU         CHAR ( 20 )         NULL,                       
 CO_UNID_CNTB    CHAR ( 03 )         NULL,                       
 CO_OPRC         CHAR ( 03 )         NULL,                       
 NU_ASTO         CHAR ( 10 )         NULL,                       
 CO_PROV         VARCHAR ( 20 )      NULL,                       
 NO_CORT_PROV    CHAR ( 50 )         NULL,                       
 CO_DOCU_SUNA    CHAR ( 11 )         NULL,                       
 NU_DOCU_SUNA    CHAR ( 20 )         NULL,                       
 NU_RUCS_PROV    CHAR ( 11 )         NULL,                       
 CO_MONE         CHAR ( 03 )         NULL,                       
 FA_CAMB         NUMERIC ( 9 , 4 )     NULL,                       
 FA_CAMB_DIAR    NUMERIC ( 9 , 4 )     NULL,                       
 IM_INAF_ORIG    NUMERIC ( 16 , 4 )    NULL,                       
 IM_AFEC_ORIG    NUMERIC ( 16 , 4 )    NULL,                       
 IM_IIGV_ORIG    NUMERIC ( 16 , 4 )    NULL,                       
 IM_FONA_ORIG    NUMERIC ( 16 , 4 )    NULL,                 
 IM_RENT_ORIG    NUMERIC ( 16 , 4 )    NULL,                       
 IM_TOTA_ORIG    NUMERIC ( 16 , 4 )    NULL,                       
                      
 IM_AFEC_CNTB    NUMERIC ( 16 , 4 )    NULL,                       
 IM_BASE_NGRA    NUMERIC ( 16 , 4 )    NULL,                       
 IM_BASE_SDCF    NUMERIC ( 16 , 4 )    NULL,                       
 IM_INAF_CNTB    NUMERIC ( 16 , 4 )    NULL,                       
 IM_BASE_RXHH    NUMERIC ( 16 , 4 )    NULL,                       
                      
 IM_IIGV_CNTB    NUMERIC ( 16 , 4 )    NULL,                      
 IM_IIGV_NGRA    NUMERIC ( 16 , 4 )    NULL,                       
 IM_IIGV_SDCF    NUMERIC ( 16 , 4 )    NULL,                  
 IM_RENT_CNTB    NUMERIC ( 16 , 4 )    NULL,                       
 IM_IESS_CNTB    NUMERIC ( 16 , 4 )    NULL,                       
 IM_TOTA_CNTB    NUMERIC ( 16 , 4 )    NULL,                       
                      
 IM_FONA_CNTB    NUMERIC ( 16 , 4 )    NULL,                       
 IM_IIGV_IISC    NUMERIC ( 16 , 4 )    NULL,                                                              
 ST_RETE_AUXI    CHAR ( 01 )         NULL,                       
 ST_RETE_DOCU    CHAR ( 01 )         NULL,                       
 ST_RETE_BCON    CHAR ( 01 )         NULL,                       
 ST_STAT         CHAR ( 1 )          NULL,                       
 CO_AUXI_EMPR    VARCHAR ( 20 )      NULL,                       
 ST_NDEB         CHAR ( 01 )         NULL,                       
 NU_DOCU_REFE    VARCHAR ( 20 )      NULL,                       
 FE_DOCU_REFE    datetime         NULL,                      
 ST_DETR         VARCHAR ( 2 )       NULL,                   
 PO_IMPT         NUMERIC ( 9 , 4 )     NULL,   --para el tipo de impuesto 18,19..                  
  FE_0001         DateTime         NULL,
  NU_DOCU_REF1    VARCHAR ( 30 )      NULL,
  IM_IGVV_POAP    NUMERIC ( 16 , 4 )    NULL,
  IM_AJUS_CNTB    NUMERIC ( 16 , 4 )    NULL,  
 DE_DIRE_0001    VARCHAR ( 200 )     NULL,
  DE_GLOS_0001    VARCHAR ( 100 )     NULL,  
 FE_PAGO         datetime         NULL,
  FE_DOCU_VENC    datetime         NULL,
  ID_REGI         INT   IDENTITY  
  )                     


 CREATE   TABLE  #TWMVTO_ERDP_Q20_2
 ( NU_RUCS_PROV  VARCHAR ( 100 )   NULL
)

 IF  @INNU_MESE_INIC  IS   NULL   AND  @INNU_MESE_FINA  IS   NULL
 -- ESTE SETEO SE HACE PARA EL CASO CERTIFICADO
    BEGIN  
     SELECT  @INNU_MESE_INIC  =  1
     SELECT  @INNU_MESE_FINA  =  12
   END
                        
 SELECT  @VNIM_TOTA_CONT  =  0.00            
 SELECT  @VNIM_IIGV_CONT  =  0.00            
 SELECT  @VNIM_AFEC_CONX  =  0.00  
 SELECT  @VNIM_INAF_CONX  =  0.00            
 SELECT  @VNIM_FONA_CONT  =  0.00            
 SELECT  @VNIM_RENT_CONT  =  0.00            
 SELECT  @VNIM_IIES_CONT  =  0.00            
 SELECT  @VNIM_TOTA_CONT_AUXI  =  0.00            
 SELECT  @VNIM_BASE_RXHH  =  0.00        
 SELECT  @VNIM_BASE_NDOM  =  0.00        
                      
 SELECT  @VNIM_IIGV_ORIG  =  0.00    SELECT  @VNIM_FONA_ORIG  =  0.00                      
 SELECT  @VNIM_RENT_ORIG  =  0.00    SELECT  @VNIM_TOTA_ORIG  =  0.00                      
 SELECT  @VDFE_DOCU       =   NULL     SELECT  @VSTI_DOCU_CNTB  =   NULL                       
 SELECT  @VSNU_ASTO       =   NULL     SELECT  @VSCO_PROV       =   NULL                       
 SELECT  @VSNO_CORT_PROV  =   NULL     SELECT  @VSNU_RUCS_PROV  =   NULL                       
 SELECT  @VSCO_MONE       =   NULL     SELECT  @VNIM_AFEC_ORIX  =  0.00                      
 SELECT  @VNIM_INAF_ORIX  =  0.00    SELECT  @VNIM_IIGV_ORIX  =  0.00                      
 SELECT  @VNIM_FONA_ORIX  =  0.00    SELECT  @VNIM_RENT_ORIX  =  0.00                      
 SELECT  @VNIM_TOTA_ORIX  =  0.00    SELECT  @VNIM_AFEC_CNTX  =  0.00                      
 SELECT  @VNIM_INAF_CNTX  =  0.00    SELECT  @VNIM_IIGV_CNTX  =  0.00                      
 SELECT  @VNIM_FONA_CNTX  =  0.00    SELECT  @VNIM_RENT_CNTX  =  0.00                    
 SELECT  @VNIM_TOTA_ORIX  =  0.00    SELECT  @VNFA_CAMB       =  0.00                      
 SELECT  @VNIM_MAXI_NRET  =  0.00    SELECT  @VSST_STAT  =   'N'
 SELECT  @VDFE_DOCU_REFE  =   NULL     SELECT  @VSNU_DOCU_REFE  =   NULL                      
 SELECT  @VSCO_SUNA_NOCR  =   NULL     SELECT  @VNPO_IGV1_0001  =  0.00                
 SELECT  @VNIM_IIES_ORIG  =  0.00    SELECT  @VSCO_DOCU_SUNA  =   NULL
 SELECT  @VNIM_IIES_CNTX  =  0.00    SELECT  @VSNU_DOCU_SUNA  =   NULL
 SELECT  @VSTI_CAMB_BASE  =   NULL                 
 SELECT  @VDFE_ASTO_CNTB  =   NULL                 
 SELECT  @VSID_RENT_NDOM  =   ''   
 SELECT  @VSID_GAST_NGRA  =   ''   
 SELECT  @VSID_IIGV_PAPL  =   ''
 SELECT  @VSID_0001  =   ''
 SELECT  @VNIM_RENO_ORIG  =  0  
 SELECT  @VNIM_RENO_CONT  =  0  
 SELECT  @VNIM_RENO_ORIX  =  0  
 SELECT  @VNIM_RENO_CNTX  =  0  
 SELECT  @VNIM_GAST_CONT  =  0  
 SELECT  @VNIM_GAST_ORIG  =  0  
 SELECT  @VDFE_0001  =   NULL     
 SELECT  @VSTI_PERS_SUNA  =   NULL   
 SELECT  @VNIM_POAP_ORIG  =  0
 SELECT  @VNIM_POAP_CONT  =  0
 SELECT  @VNIM_POAP_CNTX  =  0
 SELECT  @VNIM_POAP_ORIX  =  0
 SELECT  @VNID_IIGV  =  0
 SELECT  @VNIM_TOTA_VARI  =  0
 SELECT  @VNIM_AJUS_CNTB  =  0
 SELECT  @VNIM_TOTA_VARI_AUXI  =  0
 SELECT  @VSDE_DIRE_0001  =   NULL
 SELECT  @VSDE_GLOS_0001  =   NULL
 SELECT  @VNNU_MESE_0001  =   NULL
 SELECT  @VNIM_TOTA_ORIG_AUXI  =  0
 SELECT  @VDFE_PAGO  =   NULL     
 SELECT  @VDFE_VENC_PAGO  =   NULL
 SELECT  @CDFE_DOCU_VENC  =   NULL     
                
 SELECT  @VSCO_MONE_BAS1  =  CO_MONE ,                       
       @VSID_COMP       =  ID_COMP ,                         
       @VSID_IIGV       =  ID_IMPT_VENT ,                        
       @VSID_FONA       =  ID_FONA ,                        
 --       @VSID_RENT      = ID_IMPT_RENT,                 
        @VSID_RENT       =  ID_CUAR ,   
 --       @VSID_CUAR      = ID_CUAR                   
 @VSID_RENT_NDOM  =   IsNull ( ID_RENT_NDOM , '' ),   
@VSID_GAST_NGRA  =   IsNull ( ID_GAST_NGRA , '' ),  
 --@VSID_IIGV_PAPL = IsNull(ID_IIGV_PAPL,''),
 @VSID_0001  =   IsNull ( ID_0001 , '' )
 FROM   TTCNTB_EMPR                      
 WHERE  CO_EMPR  =  @ISCO_EMPR                       
 AND    NU_CNTB_EMPR  =  @INNU_CNTB_EMPR                

 SELECT  @VSSB_MONE_0001  =  SB_MONE , @VSDE_MONE  =  DE_MONE  
 FROM  TTMONE 
 WHERE  CO_MONE  =  @VSCO_MONE_BAS1

                     
 SELECT  @VNIM_MAXI_NRET  =  IM_MAXI_NRET ,                      
@VSCO_SUNA_NOCR  =  CO_SUNA_NOCR ,   
@VSCO_SUNA_LIQU  =   IsNull ( RTRIM ( LTRIM ( CO_SUNA_LIQU )), '' ),   
@VSCO_SUNA_POLI  =   IsNull ( RTRIM ( LTRIM ( CO_SUNA_POLI )), '' ),   
@VSCO_SUNA_SERV  =   IsNull ( RTRIM ( LTRIM ( CO_SUNA_SERV )), '' )                     
 FROM  TMPARA_CONT                      
 WHERE  CO_EMPR  =  @ISCO_EMPR                      
                      
 SELECT  @CNPO_IGV1  =  0.00   SELECT  @CNPO_IGV2  =  0.00                      
 SELECT  @CNPO_REN1  =  0.00   SELECT  @CNPO_REN2  =  0.00                      
                      
 SELECT  @VSNU_CNTB_EMPR  =   CONVERT ( VARCHAR ( 1 ), @INNU_CNTB_EMPR )                       
 SELECT  @VSNU_ANNO  =   CONVERT ( VARCHAR ( 4 ), @INNU_ANNO  )                  
 SELECT  @VSNU_MESE_INIC  =   CONVERT ( VARCHAR ( 2 ), @INNU_MESE_INIC  )                       
 SELECT  @VSNU_MESE_FINA  =   CONVERT ( VARCHAR ( 2 ), @INNU_MESE_FINA  )                       
                    
                    
 -- OBTENGO EL IGV ANTES DE DEFINIR EL CURSOR                    
             
 SELECT  @VNPO_IGV1_ANNO  =  PO_IMPT_VEN1 ,                     
       @VNPO_IGV2_ANNO  =  PO_IMPT_VEN2 ,                      
       @VNPO_REN1  =  PO_IMPT_REN1 ,                     
       @VNPO_REN2  =  PO_IMPT_REN2                    
 FROM   TTPORC_IMPT                    
 WHERE  CO_EMPR  =  @ISCO_EMPR                    
 AND    NU_ANNO  =  @INNU_ANNO           
 AND    NU_MESE  =  @INNU_MESE_FINA                    
                    
 IF  @VNPO_IGV1_ANNO  IS   NULL                     
  SELECT  @VNPO_IGV1_ANNO  =  0.00                    
 IF  @VNPO_IGV2_ANNO  IS   NULL                     
  SELECT  @VNPO_IGV2_ANNO  =  0.00                    
 IF  @VNPO_REN1  IS   NULL                     
  SELECT  @VNPO_REN1  =  0.00                    
 IF  @VNPO_REN2  IS   NULL                     
  SELECT  @VNPO_REN2  =  0.00                    
                    
                
 SELECT  @VNID_IIES  =  0                  
 SELECT  @VNID_RENT  =  0                
 SELECT  @VNID_NDOM  =  0                
 SELECT  @VNID_GAST  =  0                

 SELECT  @VSCO_MONE_NACI  =   ''
 SELECT  @VSCO_MONE_NACI  =   IsNull ( RTRIM ( CO_MONE_NACI ), '' )
 FROM  TMEMPR
 WHERE  CO_EMPR  =  @ISCO_EMPR

 SELECT   @VNIM_TOTA_BASY  =  0

 -- EL ORDEN ES POR ASTO Y LUEGO ID_CNTA ES DECOIR PRIMERO VIENE LA 42x Y LUEGO LA 40  
 EXEC ( 'Declare CU_TXMVTO_CNTB_Q20_1 Cursor For  
Select Distinct TXMVTO_CNTB.FE_DOCU, TXMVTO_CNTB.TI_DOCU, TXMVTO_CNTB.NU_DOCU, TXMVTO_CNTB.CO_UNID_CNTB,                       
TXMVTO_CNTB.CO_OPRC_CNTB, TXMVTO_CNTB.NU_MESE, TXMVTO_CNTB.NU_ASTO, TXMVTO_CNTB.TI_AUXI_EMPR,                       
TXMVTO_CNTB.CO_AUXI_EMPR, TXMVTO_CNTB.CO_CNTA_EMPR, TXMVTO_CNTB.TI_OPER, TXMVTO_CNTB.CO_MONE,                        
TXMVTO_CNTB.FA_CAMB, 
TXMVTO_CNTB.IM_MVTO_ORIG, TXMVTO_CNTB.IM_MVTO_CNTB, TTIDEN_CNTA.ID_CNTA,         
IsNull(TTPORC_IMPT.PO_IMPT_REN1,0), IsNull(TTPORC_IMPT.PO_IMPT_REN2,0),                       
IsNull(TTPORC_IMPT.PO_IMPT_VEN1,0), IsNull(TTPORC_IMPT.PO_IMPT_VEN2,0),   
TXMVTO_CNTB.TI_DOCU_DETR, TXMVTO_CNTB.NU_DOCU_DETR, TXMVTO_CNTB.FE_DOCU_DETR,   
TXMVTO_CNTB.CO_EMPR,               
TXMVTO_CNTB.FE_ASTO_CNTB, TXMVTO_CNTB.TI_CAMB, TMPLAN_ANNO.ST_CNTA_CAMB,  
TXMVTO_CNTB.FE_DOCU_VENC,TXMVTO_CNTB.FA_CAMB_DIAR,(Case When Datalength(Rtrim(IsNull(TXMVTO_CNTB.NU_DOCU_REFE,""))) > 0 Then IsNull(t3.CO_SUNA,"") + "-" + IsNull(TXMVTO_CNTB.NU_DOCU_REFE,"") Else NULL End), 
TXMVTO_CNTB.DE_GLOS
From TXMVTO_CNTB  
Left Outer Join TTPORC_IMPT   
On TTPORC_IMPT.CO_EMPR = TXMVTO_CNTB.CO_EMPR                       
And TTPORC_IMPT.NU_ANNO = TXMVTO_CNTB.NU_ANNO                 
And TTPORC_IMPT.NU_MESE = TXMVTO_CNTB.NU_MESE
Left Outer Join TTDOCU_CNTB t3  
On t3.TI_DOCU = TXMVTO_CNTB.TI_DOCU_REFE, TTIDEN_CNTA, TMPLAN_ANNO                       
Where TXMVTO_CNTB.CO_EMPR = "'   +  @ISCO_EMPR  +   '"  
And TXMVTO_CNTB.NU_CNTB_EMPR = '   +  @VSNU_CNTB_EMPR  +   '  
And TXMVTO_CNTB.CO_OPRC_CNTB In (                
     Select T1.CO_OPRC_CNTB From TTIDEN_OPER T1   
     Where T1.CO_EMPR = TXMVTO_CNTB.CO_EMPR   
     And T1.NU_CNTB_EMPR = TXMVTO_CNTB.NU_CNTB_EMPR   
     And T1.ID_OPRC   = "'   +  @VSID_COMP  +   '" )                       
 And TXMVTO_CNTB.NU_ANNO  = '   +  @VSNU_ANNO  +   '                      
 And TXMVTO_CNTB.NU_MESE >= '   +  @VSNU_MESE_INIC  +   '                      
 And TXMVTO_CNTB.NU_MESE <= '   +  @VSNU_MESE_FINA  +   '     
                  
 And ((TXMVTO_CNTB.CO_CNTA_EMPR In (                       
     Select T2.CO_CNTA_EMPR From TTIDEN_CNTA T2   
     Where T2.CO_EMPR = TXMVTO_CNTB.CO_EMPR   
     And T2.NU_CNTB_EMPR = TXMVTO_CNTB.NU_CNTB_EMPR   
     And T2.ID_CNTA = "'   +  @VSID_COMP  +   '" ) '   +  @ISCA_WHER_LOCA  +   ' )                  
 Or (TXMVTO_CNTB.CO_CNTA_EMPR In (   
     Select T2.CO_CNTA_EMPR From TTIDEN_CNTA T2   
     Where T2.CO_EMPR = TXMVTO_CNTB.CO_EMPR   
    And T2.NU_CNTB_EMPR = TXMVTO_CNTB.NU_CNTB_EMPR   
     And T2.ID_CNTA In ("'   +  @VSID_RENT  +   '" ) )  
))   
 and TXMVTO_CNTB.SI_MVTO_CNTB = "APR"   
 and TTIDEN_CNTA.CO_EMPR   = TXMVTO_CNTB.CO_EMPR   
 and TTIDEN_CNTA.CO_CNTA_EMPR = TXMVTO_CNTB.CO_CNTA_EMPR   
 and TTIDEN_CNTA.NU_CNTB_EMPR = TXMVTO_CNTB.NU_CNTB_EMPR   
 And TTIDEN_CNTA.ID_CNTA In ("'   +  @VSID_COMP  +   '", "'   +  @VSID_RENT  +   '" )
 And TMPLAN_ANNO.CO_EMPR = TXMVTO_CNTB.CO_EMPR  
 And TMPLAN_ANNO.CO_CNTA_EMPR = TXMVTO_CNTB.CO_CNTA_EMPR   
 Union All   
 Select Null, Null, Null, "99", "999", 99, "9999999999", Null, Null,   
 Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null,NULL,NULL,NULL,NULL   
 Order By 4,5,6,7 ASC, 16 Asc, 10 DESC ,8,9 ASC '   )  

 --"' + @VSID_IIGV + '",     
                       
 OPEN  CU_TXMVTO_CNTB_Q20_1                      
 FETCH  CU_TXMVTO_CNTB_Q20_1  INTO                        
    @CDFE_DOCU ,  @CSTI_DOCU_CNTB ,  @CSNU_DOCU ,  @CSCO_UNID ,  @CSCO_OPRC ,  @CNNU_MESE ,                        
    @CSNU_ASTO ,  @CSTI_AUXI_EMPR ,  @CSCO_AUXI ,  @CSCN_CNTB_EMPR ,  @CSTI_OPER_CNTB ,                        
    @CSCO_MONE ,  @CNFA_CAMB ,  @CNIM_MVTO_ORIG ,  @CNIM_MVTO_CNTB ,  @CSID_CNTA ,                       
    @CNPO_REN1 ,  @CNPO_REN2 ,  @CNPO_IGV1 ,       @CNPO_IGV2 ,   @CSTI_DOCU_REFE ,  @CSNU_DOCU_REFE ,  @CDFE_DOCU_REFE ,                   
    @CSCO_EMPR ,  @CDFE_ASTO_CNTB ,  @CSTI_CAMB ,  @CSST_CNTA_CAMB , @CDFE_DOCU_VENC , @CNFA_CAMB_DIAR , @CSNU_DOCU_REF1 ,  
    @CSDE_GLOS_0001
                      
 SELECT  @VSNU_ASTO_BASE  =   NULL                       
 SELECT  @VSCO_MONE_BASE  =   NULL                       

 WHILE   @@Fetch_status   =  0                      
 BEGIN                                         


  IF  @VSNU_ASTO_BASE  !=   RTRIM ( @CSCO_UNID )   +   RTRIM ( @CSCO_OPRC )   +                        
     Substring (   CONVERT ( VARCHAR ( 3 ), 100  +  @CNNU_MESE ), 2 , 2 )   +   RTRIM ( @CSNU_ASTO )                        
     AND  @VSCO_MONE_BASE  IS   NOT   NULL                       
  BEGIN                       
   SELECT  @VNIM_TOTA_BASX  =   ROUND ( @VNIM_TOTA_ORIG  -   IsNull ( @VNIM_IIGV_ORIG , 0 ), 2 )            
 --  Select @VNIM_TOTA_BASY = Round(@VNIM_IIGV_ORIG / ((@VNPO_IGV1 + @VNPO_IGV2) / 100), 2)           
-- LEE DATOS CONTABLES             
    SELECT  @VNIM_CONT_BASX  =   ROUND ( @VNIM_TOTA_CONT  -   IsNull ( @VNIM_IIGV_CONT , 0 ), 2 )                             
 --  Select @VNIM_CONT_BASY = Round(@VNIM_IIGV_CONT / ((@VNPO_IGV1 + @VNPO_IGV2) / 100),2)                            
-- LEE DATOS CONTABLES             
                      
   IF   ABS ( ROUND ( @VNIM_TOTA_BASX  -  @VNIM_TOTA_BASY , 2 ))   >  0.50                      
   BEGIN                       
     SELECT  @VNIM_AFEC_ORIX  =   ROUND ( @VNIM_TOTA_BASY , 2 )                       
     SELECT  @VNIM_INAF_ORIX  =   ROUND ( @VNIM_TOTA_BASX  -  @VNIM_TOTA_BASY , 2 )         
 -- LEE DE DATOS CONTABLES            
      SELECT  @VNIM_AFEC_CONX  =   ROUND ( @VNIM_CONT_BASY , 2 )                             
     SELECT  @VNIM_INAF_CONX  =   ROUND ( @VNIM_CONT_BASX  -  @VNIM_CONT_BASY , 2 )                             
 -- LEE DE DATOS CONTABLES            
    END                       
   ELSE                      
   BEGIN                       
     SELECT  @VNIM_AFEC_ORIX  =   ROUND ( @VNIM_TOTA_BASX , 2 )                       
     SELECT  @VNIM_INAF_ORIX  =  0.00                      
 -- LEE DE DATOS CONTABLES            
      SELECT  @VNIM_AFEC_CONX  =   ROUND ( @VNIM_CONT_BASX , 2 )                             
     SELECT  @VNIM_INAF_CONX  =  0.00                            
 -- LEE DE DATOS CONTABLES            
    END    
                    
   IF  @VSCO_MONE  !=  @VSCO_MONE_BAS1                      
   BEGIN                     
     SELECT  @VNIM_IIGV_ORIX  =  @VNIM_IIGV_ORIG                      
     SELECT  @VNIM_FONA_ORIX  =  @VNIM_FONA_ORIG                      
     SELECT  @VNIM_RENT_ORIX  =  @VNIM_RENT_ORIG                      
     SELECT  @VNIM_RENO_ORIX  =  @VNIM_RENO_ORIG                      
     SELECT  @VNIM_POAP_ORIX  =  @VNIM_POAP_ORIG                      
     SELECT  @VNIM_TOTA_ORIX  =  @VNIM_TOTA_ORIG  +   ( @VNIM_FONA_ORIX  +  @VNIM_RENT_ORIX )                 
              
     SELECT  @VNIM_AFEC_CNTX  =  @VNIM_AFEC_CONX            
     SELECT  @VNIM_INAF_CNTX  =  @VNIM_INAF_CONX            
     SELECT  @VNIM_IIGV_CNTX  =  @VNIM_IIGV_CONT                        
     SELECT  @VNIM_FONA_CNTX  =  @VNIM_FONA_CONT            
     SELECT  @VNIM_RENT_CNTX  =  @VNIM_RENT_CONT            
     SELECT  @VNIM_RENO_CNTX  =  @VNIM_RENO_CONT            
     SELECT  @VNIM_TOTA_CNTX  =  @VNIM_TOTA_CONT  +  @VNIM_FONA_CONT  +  @VNIM_RENT_CONT                 
     SELECT  @VNIM_IIES_CNTX  =  @VNIM_IIES_CONT            
     SELECT  @VNIM_TOTA_CNTB_AUXI  =  @VNIM_TOTA_CONT_AUXI  
     SELECT  @VNIM_POAP_CNTX  =  @VNIM_POAP_CONT          
                
   END               
   ELSE                       
   BEGIN  /*                     
     SELECT  @VNIM_AFEC_CNTX  =   ROUND ( @VNIM_AFEC_ORIX , 2 )                       
     SELECT  @VNIM_INAF_CNTX  =   ROUND ( @VNIM_INAF_ORIX , 2 )                       
     SELECT  @VNIM_IIGV_CNTX  =   ROUND ( @VNIM_IIGV_ORIG , 2 )            
     SELECT  @VNIM_FONA_CNTX  =   ROUND ( @VNIM_FONA_ORIG , 2 )                       
     SELECT  @VNIM_RENT_CNTX  =   ROUND ( @VNIM_RENT_ORIG , 2 )                       
     SELECT  @VNIM_RENO_CNTX  =   ROUND ( @VNIM_RENO_ORIG , 2 )                       
     SELECT  @VNIM_POAP_CNTX  =   ROUND ( @VNIM_POAP_ORIG , 2 )                       
     SELECT  @VNIM_TOTA_CNTX  =   ROUND (( @VNIM_TOTA_ORIG  +   ( @VNIM_FONA_ORIX  +  @VNIM_RENT_ORIX )), 2 )                       
     SELECT  @VNIM_IIES_CNTX  =   ROUND ( @VNIM_IIES_ORIG , 2 )                 
     SELECT  @VNIM_TOTA_CNTB_AUXI  =   ROUND ( @VNIM_TOTA_ORIG_AUXI , 2 )*/
     SELECT  @VNIM_AFEC_CNTX  =  @VNIM_AFEC_CONX            
     SELECT  @VNIM_INAF_CNTX  =  @VNIM_INAF_CONX            
     SELECT  @VNIM_IIGV_CNTX  =  @VNIM_IIGV_CONT                        
     SELECT  @VNIM_FONA_CNTX  =  @VNIM_FONA_CONT            
     SELECT  @VNIM_RENT_CNTX  =  @VNIM_RENT_CONT            
     SELECT  @VNIM_RENO_CNTX  =  @VNIM_RENO_CONT            
     SELECT  @VNIM_TOTA_CNTX  =  @VNIM_TOTA_CONT  +  @VNIM_FONA_CONT  +  @VNIM_RENT_CONT                 
     SELECT  @VNIM_IIES_CNTX  =  @VNIM_IIES_CONT            
     SELECT  @VNIM_TOTA_CNTB_AUXI  =  @VNIM_TOTA_CONT_AUXI  
     SELECT  @VNIM_POAP_CNTX  =  @VNIM_POAP_CONT  


     SELECT  @VNIM_AFEC_ORIX  =  0.00  
     SELECT  @VNIM_INAF_ORIX  =  0.00  
     SELECT  @VNIM_IIGV_ORIX  =  0.00  
     SELECT  @VNIM_FONA_ORIX  =  0.00  
     SELECT  @VNIM_RENT_ORIX  =  0.00  
     SELECT  @VNIM_RENO_ORIX  =  0.00  
     SELECT  @VNIM_TOTA_ORIX  =  0.00  
     SELECT  @VNIM_POAP_ORIX  =  0.00
 --    Select @VNFA_CAMB = Null
      
    END                   
                
 -- CASO IMPUESTO A LA RENTA 4TA CATEGORIA  
 IF  @VNID_IIES  =  1  OR  @VNID_RENT  =  1
   BEGIN                  
  SELECT  @VNIM_AFEC_CNTX  =   IsNull ( @VNIM_TOTA_CNTB_AUXI , 0 )   +   ABS ( IsNull ( @VNIM_RENT_CNTX , 0 ))   +   ABS ( IsNull ( @VNIM_IIES_CNTX , 0 ))                 
 -- RECIBOS POR HONORARIOS        
   SELECT  @VNIM_BASE_RXHH  =  @VNIM_AFEC_CNTX        
  SELECT  @VNIM_AFEC_CNTX  =  0        
 -- RECIBOS POR HONORARIOS        
   SELECT  @VNIM_RENT_ORIG  =   ABS ( @VNIM_RENT_ORIG )                 
  SELECT  @VNIM_RENT_CNTX  =   ABS ( @VNIM_RENT_CNTX )   
  SELECT  @VNIM_IIES_CNTX  =   ABS ( @VNIM_IIES_CNTX )                 
  SELECT  @VNIM_IIES_ORIG  =   ABS ( @VNIM_IIES_ORIG )                 
  SELECT  @VNIM_INAF_CNTX  =  0                
  SELECT  @VNIM_TOTA_CNTX  =  @VNIM_TOTA_CNTB_AUXI
                
   IF  @VSCO_MONE  !=  @VSCO_MONE_BAS1                 
   BEGIN                   
       SELECT  @VNIM_AFEC_ORIX  =  0 --@VNIM_TOTA_ORIG_AUXI + Abs(@VNIM_RENT_ORIG) + Abs(@VNIM_IIES_ORIG)                
        SELECT  @VNIM_INAF_ORIX  =  0.00  
       SELECT  @VNIM_TOTA_ORIX  =  @VNIM_TOTA_ORIG_AUXI                 
   END                 
 END                 

 -- CASO ASIENTO DEL PAGO DE IGV AL SIGTE MES (NO DOMICILIADOS)
 IF  @VNID_NDOM  =  1  AND  @VSTI_PERS_SUNA  =   '03'   AND  @VNID_IIGV  =  1  --- CASO AUXILIAR ES NO DOMICILIADO  
 BEGIN            
 --- LA VARIABLE @VNIM_TOTA_VARI ACUMULA SOLO LOS CARGOS (SOLO SE DEBE USAR ESTA VARIABNLE PARA CANC DE IGV NO DOMICILIADO )
     SELECT  @VNIM_AFEC_CNTX  =   ABS ( @VNIM_TOTA_VARI )
     SELECT  @VNIM_IIGV_CNTX  =   ABS ( @VNIM_IIGV_CNTX )
     SELECT  @VNIM_RENO_ORIG  =  0
    SELECT  @VNIM_RENO_CNTX  =  0
    SELECT  @VNIM_INAF_CNTX  =  0                
    SELECT  @VNIM_POAP_CNTX  =  0
    SELECT  @VNIM_TOTA_CNTX  =  @VNIM_AFEC_CNTX  +  @VNIM_IIGV_CNTX  ---@VNIM_TOTA_CNTB_AUXI                 

     SELECT  @VNIM_AFEC_ORIX  =  0
    SELECT  @VNIM_INAF_ORIX  =  0
    SELECT  @VNIM_TOTA_ORIX  =  0
                
   IF  @VSCO_MONE  !=  @VSCO_MONE_BAS1                 
   BEGIN                   
       SELECT  @VNIM_AFEC_ORIX  =   ABS ( @VNIM_TOTA_VARI_AUXI )
        SELECT  @VNIM_INAF_ORIX  =  0
       SELECT  @VNIM_TOTA_ORIX  =   ABS ( @VNIM_IIGV_ORIX )   +   ABS ( @VNIM_AFEC_ORIX )   ----@VNIM_TOTA_ORIG_AUXI                 
    END                 
 END    -- FIN CASO ASIENTO DEL PAGO DE IGV AL SIGTE MES (NO DOMICILIADOS)


               
 IF  @VNID_COMP  =  1  AND  @VNID_IIGV  =  0  AND  @VNID_IIES  =  0  AND  @VNID_RENT  =  0  AND  @VNID_NDOM  =  0  AND  @VNID_GAST  =  0          
 BEGIN          
  SELECT  @VNIM_INAF_CNTX  =  @VNIM_AFEC_CNTX                
  SELECT  @VNIM_INAF_CNTX  =  @VNIM_TOTA_CNTX                
  SELECT  @VNIM_AFEC_CNTX  =  0                  
 
 END                 
 -- FIN SE AUMENTO                
                       

   SELECT  @VSCO_SUNA  =  CO_SUNA ,  @VSNO_DOCU  =  NO_DOCU ,  @VSST_RETE_DOCU  =  ST_RETE                      
   FROM  TTDOCU_CNTB                      
   WHERE  TI_DOCU  =  @VSTI_DOCU_CNTB                      
                       
   SELECT  @VSTI_DOCU_AUXI  =  @VSTI_DOCU_CNTB                      
                  
 ---- CONVIERTO EL PORCENTAJE DEL CURSOR EN CARACTER ANTES DE INSERTAR A LA TEMPO --                  

    SELECT  @VNPO_IGV1_0001  =   ROUND ( @VNPO_IGV1 , 2 )


 -- OBTENCION DE IMPORTE DE AJUSTE 

/*
  If @VNID_IIGV = 1  
    Begin 
    If IsNull(@VNID_NDOM,0) = 1
      Begin 
          Select @VNIM_AJUS_CNTB = IsNull(Abs(@VNIM_CONT_BASY),0) - IsNull(Abs(@VNIM_AFEC_CNTX),0)
      End 
    Else
      Begin 
          Select @VNIM_AJUS_CNTB = IsNull(Abs(@VNIM_CONT_BASY),0) - IsNull(Abs(@VNIM_CONT_BASX),0)
      End 
    End 
  Else 
    Begin 
    Select @VNIM_AJUS_CNTB = 0.00
    End 
*/

    INSERT   INTO  #TWMVTO_ERDP_Q20_1  (                       
   CO_EMPR ,  FE_DOCU      ,  TI_DOCU_SUNA ,  TI_DOCU_CNTB ,  NO_DOCU      ,  NU_DOCU      ,  CO_UNID_CNTB ,                       
   CO_OPRC      ,  NU_ASTO      ,  CO_PROV      ,  NO_CORT_PROV ,  NU_RUCS_PROV ,  CO_MONE      ,                       
   FA_CAMB      ,  IM_INAF_ORIG ,  IM_AFEC_ORIG ,  IM_IIGV_ORIG ,  IM_FONA_ORIG ,  IM_RENT_ORIG ,                       
   IM_TOTA_ORIG ,  IM_AFEC_CNTB ,  IM_BASE_NGRA ,  IM_BASE_SDCF ,  IM_INAF_CNTB ,  IM_BASE_RXHH ,                       
   IM_IIGV_CNTB ,  IM_IIGV_NGRA ,  IM_IIGV_SDCF ,  IM_RENT_CNTB ,  IM_IESS_CNTB ,  IM_TOTA_CNTB ,                       
   IM_FONA_CNTB ,  IM_IIGV_IISC ,  ST_RETE_AUXI ,  ST_RETE_DOCU ,  ST_RETE_BCON ,  ST_STAT      ,   
   CO_AUXI_EMPR ,  ST_NDEB ,       NU_DOCU_REFE ,  FE_DOCU_REFE ,  PO_IMPT , FE_0001 , FA_CAMB_DIAR ,
    NU_DOCU_REF1 , IM_IGVV_POAP , IM_AJUS_CNTB , DE_DIRE_0001 , DE_GLOS_0001 , NU_MESE ,  FE_PAGO ,  FE_DOCU_VENC ,  CO_DOCU_SUNA ,  NU_DOCU_SUNA )
     VALUES ( @CSCO_EMPR ,  @VDFE_DOCU ,     @VSCO_SUNA ,       @VSTI_DOCU_AUXI ,  @VSNO_DOCU ,       @VSNU_DOCU ,       @VSCO_UNID ,
    @VSCO_OPRC ,       @VSNU_ASTO ,       @VSCO_PROV ,       @VSNO_CORT_PROV ,  @VSNU_RUCS_PROV ,  @VSCO_MONE ,
    @VNFA_CAMB ,       @VNIM_INAF_ORIX ,  @VNIM_AFEC_ORIX ,  @VNIM_IIGV_ORIX ,  @VNIM_FONA_ORIX ,  @VNIM_RENT_ORIX ,
    @VNIM_TOTA_ORIX ,  @VNIM_AFEC_CNTX ,  0 ,  @VNIM_BASE_NDOM    ,  @VNIM_INAF_CNTX ,  @VNIM_BASE_RXHH ,
    @VNIM_IIGV_CNTX ,  0  ,  @VNIM_RENO_CNTX ,  @VNIM_RENT_CNTX ,  @VNIM_IIES_CNTX ,  @VNIM_TOTA_CNTX ,
    @VNIM_FONA_CNTX ,  0  ,  @VSST_RETE_AUXI ,  @VSST_RETE_DOCU ,  @VSST_BCON_AUXI ,  @VSST_STAT ,
     '' ,    'N' ,  @VSNU_DOCU_REFE ,  @VDFE_DOCU_REFE ,   ROUND ( @VNPO_IGV1_0001 , 2 ), @VDFE_0001 , @VNFA_CAMB_DIAR , @VSNU_DOCU_REF1 , @VNIM_POAP_CNTX , @VNIM_AJUS_CNTB , @VSDE_DIRE_0001 ,
    @VSDE_GLOS_0001 , @VNNU_MESE_0001 ,  @VDFE_VENC_PAGO ,  @CDFE_DOCU_VENC ,  @VSCO_DOCU_SUNA ,  @VSNU_DOCU_SUNA )

     SELECT  @VSTI_CAMB_BASE  =   NULL                   
    SELECT  @VDFE_ASTO_CNTB  =   NULL                   
    SELECT  @VSCO_MONE_BASE  =   NULL     SELECT  @VDFE_DOCU  =   NULL                       
    SELECT  @VSTI_DOCU_CNTB  =   NULL     SELECT  @VSNU_ASTO  =   NULL                       
    SELECT  @VSCO_PROV  =   NULL          SELECT  @VSNO_CORT_PROV  =   NULL                       
    SELECT  @VSNU_RUCS_PROV   =   NULL    SELECT  @VSCO_DOCU_SUNA  =   NULL SELECT  @VSNU_DOCU_SUNA  =   NULL
     SELECT  @VNIM_IIGV_ORIG  =  0.00    SELECT  @VNIM_FONA_ORIG  =  0.00     SELECT  @VSCO_MONE  =   NULL
     SELECT  @VNIM_RENT_ORIG  =  0.00    SELECT  @VNIM_TOTA_ORIG  =  0.00                      
    SELECT  @VNIM_AFEC_ORIX  =  0.00    SELECT  @VNIM_INAF_ORIX  =  0.00                      
    SELECT  @VNIM_IIGV_ORIX  =  0.00    SELECT  @VNIM_FONA_ORIX  =  0.00                      
    SELECT  @VNIM_RENT_ORIX  =  0.00    SELECT  @VNIM_TOTA_ORIX  =  0.00                      
    SELECT  @VNIM_AFEC_CNTX  =  0.00    SELECT  @VNIM_INAF_CNTX  =  0.00           
    SELECT  @VNIM_IIGV_CNTX  =  0.00    SELECT  @VNIM_FONA_CNTX  =  0.00                         
    SELECT  @VNIM_RENT_CNTX  =  0.00    SELECT  @VNIM_TOTA_ORIX  =  0.00                      
    SELECT  @VNFA_CAMB  =  0.00                      
    SELECT  @VNFA_CAMB_DIAR  =  0.00                      
    SELECT  @VDFE_DOCU_REFE  =   NULL     SELECT  @VSNU_DOCU_REFE  =   NULL                       
    SELECT  @VNIM_IIES_ORIG  =  0.00              
    SELECT  @VNIM_IIES_CNTX  =  0.00              
    SELECT  @VNIM_RENO_ORIG  =  0  
    SELECT  @VNIM_RENO_CONT  =  0  
    SELECT  @VNIM_RENO_ORIX  =  0  
    SELECT  @VNIM_RENO_CNTX  =  0  
    SELECT  @VNIM_GAST_CONT  =  0  
    SELECT  @VNIM_GAST_ORIG  =  0  
                
    SELECT  @VNIM_TOTA_ORIG_AUXI  =  0              
    SELECT  @VNIM_TOTA_CNTB_AUXI  =  0                 
    SELECT  @VNID_IIES  =  0                 
    SELECT  @VNID_RENT  =  0                
    SELECT  @VNID_NDOM  =  0                
    SELECT  @VNID_IIGV  =  0                
    SELECT  @VNID_COMP  =  0                
    SELECT  @VNID_GAST  =  0      
    SELECT  @VDFE_0001  =   NULL                           
            
    SELECT  @VNIM_TOTA_CONT  =  0.00            
    SELECT  @VNIM_IIGV_CONT  =  0.00            
    SELECT  @VNIM_AFEC_CONX  =  0.00            
    SELECT  @VNIM_INAF_CONX  =  0.00            
    SELECT  @VNIM_FONA_CONT  =  0.00            
    SELECT  @VNIM_RENT_CONT  =  0.00        
    SELECT  @VNIM_IIES_CONT  =  0.00            
    SELECT  @VNIM_TOTA_CONT_AUXI  =  0.00            
    SELECT  @VNIM_BASE_RXHH  =  0.00        
    SELECT  @VNIM_BASE_NDOM  =  0.00        
    SELECT  @VSTI_PERS_SUNA  =   NULL   
    SELECT  @VSNU_DOCU_REF1  =   NULL
     SELECT  @VNIM_POAP_ORIG  =  0
    SELECT  @VNIM_POAP_CONT  =  0
    SELECT  @VNIM_POAP_CNTX  =  0
    SELECT  @VNIM_POAP_ORIX  =  0
    SELECT  @VNIM_TOTA_VARI  =  0
    SELECT  @VNIM_AJUS_CNTB  =  0
    SELECT  @VNIM_TOTA_VARI_AUXI  =  0
    SELECT  @VSDE_DIRE_0001  =   NULL
     SELECT  @VSDE_GLOS_0001  =   NULL                       
    SELECT  @VNNU_MESE_0001  =   NULL                         
    SELECT  @VDFE_VENC_PAGO  =   NULL
     SELECT  @CDFE_DOCU_VENC  =   NULL         
      
  END   -- (If @VSNU_ASTO_BASE != Rtrim(@CSCO_UNID) + Rtrim(@CSCO_OPRC) +......)                      
                       
  SELECT  @VSNU_ASTO_BASE  =   RTRIM ( @CSCO_UNID )   +   RTRIM ( @CSCO_OPRC )   +   Substring (   CONVERT ( VARCHAR ( 3 ), 100  +  @CNNU_MESE ), 2 , 2 )   +   RTRIM ( @CSNU_ASTO )

 ------------------------------------------------------                    
   -- Cuentas del Registro de Compras --------------                      
   IF  @CSID_CNTA  =   '001'         
  BEGIN                         

     Select  @VDFE_PAGO  =   NULL           
    
      Select  @VDFE_PAGO  =   Max ( FE_PAGO )            
      From  TXMVTO_CNTB          
      Where  CO_EMPR  =  @ISCO_EMPR          
      And  NU_CNTB_EMPR  =  @INNU_CNTB_EMPR          
      And  NU_ANNO  =  @INNU_ANNO          
      And  NU_MESE  =  @INNU_MESE_INIC          
      And  CO_CNTA_EMPR  =  @CSCN_CNTB_EMPR          
      And  TI_AUXI_EMPR  =  @CSTI_AUXI_EMPR          
      And  CO_AUXI_EMPR  =  @CSCO_AUXI          
      And  TI_DOCU  =  @CSTI_DOCU_CNTB          
      And  NU_DOCU  =  @CSNU_DOCU          
      And  SI_MVTO_CNTB  =   'APR'           
      And  CO_OPRC_CNTB  Not   In            
              ( Select  CO_OPRC_CNTB           
               From  TTIDEN_OPER           
               Where  CO_EMPR  =  @ISCO_EMPR           
               And  NU_CNTB_EMPR  =  @INNU_CNTB_EMPR           
               And  ID_OPRC  =  @VSID_COMP  )          
                    
 select  @VDFE_VENC_PAGO  =  @VDFE_PAGO

 --- VALIDA SI CODIGO SUNAT ES POLIZA DE IMPORTACION   
--- EXTRAE EL CODIGO SUNAT DEL DOCUMENTO DE LA 42x  
 SELECT  @VSCO_SUNA_VARI  =   ''   
  
 SELECT  @VSCO_SUNA_VARI  =   IsNull ( CO_SUNA , '' )   
 FROM  TTDOCU_CNTB  
 WHERE  TI_DOCU  =  @CSTI_DOCU_CNTB  
  
 SELECT  @VSCO_EMPR_0001  =   ''   
 SELECT  @VSCO_EMPR_0001  =   IsNull ( RTRIM ( CO_EMPR ), '' )   
 FROM  TTCOSU_POLI  
 WHERE  CO_SUNA  =  @VSCO_SUNA_VARI   
  
 IF  @VSCO_EMPR_0001  !=   ''   
  BEGIN    
    SELECT  @VNID_GAST  =  1
  END    
  
  
   SELECT  @VNID_COMP  =  1                
   IF  @VSCO_MONE_BASE  IS   NULL                       
   BEGIN                 

    SELECT  @VSCO_PROV  =  CO_AUXI_EMPR ,                       
          @VSNO_CORT_PROV  =  NO_AUXI ,     
          @VSCO_DOCU_SUNA  =  CO_DOCU_SUNA ,                       
          @VSNU_DOCU_SUNA  =  NU_DOCU_SUNA ,                       
          @VSNU_RUCS_PROV  =  NU_RUCS ,                       
          @VSST_RETE_AUXI  =  ST_RETE ,                       
          @VSST_BCON_AUXI  =  ST_BCON ,                       
          @VSST_DETR       =  ST_DETR ,    
          @VSTI_PERS_SUNA  =   IsNull ( TI_PERS_SUNA , '' ),
           @VSDE_DIRE_0001  =   IsNull ( NO_DIRE , '' )                       
    FROM  TMAUXI_EMPR                      
    WHERE  CO_EMPR  =  @ISCO_EMPR   
    AND  TI_AUXI_EMPR  =  @CSTI_AUXI_EMPR   
   AND  CO_AUXI_EMPR  =  @CSCO_AUXI                      
    IF   @@rowcount   =  0                      
    BEGIN            
     SELECT  @VDFE_DOCU  =   NULL        
     SELECT  @VSTI_DOCU_CNTB  =   NULL                       
     SELECT  @VSNU_DOCU  =   NULL                       
     SELECT  @VSCO_PROV  =   NULL                        
     SELECT  @VSNO_CORT_PROV  =   NULL                      
     SELECT  @VSCO_DOCU_SUNA  =   NULL                       
     SELECT  @VSNU_DOCU_SUNA  =   NULL                       
     SELECT  @VSNU_RUCS_PROV  =   NULL                      
     SELECT  @VDFE_DOCU_REFE  =   NULL                          
     SELECT  @VSNU_DOCU_REFE  =   NULL                       
     SELECT  @VSDE_DIRE_0001  =   NULL
     END    
    ELSE                        
    BEGIN                       
     SELECT  @VDFE_DOCU       =  @CDFE_DOCU                      
     SELECT  @VSTI_DOCU_CNTB  =  @CSTI_DOCU_CNTB                      
     SELECT  @VSNU_DOCU       =  @CSNU_DOCU                
     SELECT  @VDFE_DOCU_REFE  =  @CDFE_DOCU_REFE                      
     SELECT  @VSNU_DOCU_REFE  =  @CSNU_DOCU_REFE                    
    END                       
                      
    -- Si el Auxiliar est? sujeto a detracci?n, entonces NO retiene IGV,                       
     IF  @VSST_DETR  =   'S'                       
       SELECT  @VSST_RETE_AUXI  =   'S'                       
                      
    SELECT  @VSCO_UNID  =  @CSCO_UNID    
    SELECT  @VSCO_OPRC  =  @CSCO_OPRC                      
    SELECT  @VSNU_ASTO  =  @CSNU_ASTO                      
    SELECT  @VSCO_MONE  =  @CSCO_MONE                      
    SELECT  @VNFA_CAMB  =   ROUND ( @CNFA_CAMB , 3 )                       
    SELECT  @VNFA_CAMB_DIAR  =   ROUND ( @CNFA_CAMB_DIAR , 3 )                       
    SELECT  @VSCO_MONE_BASE  =  @CSCO_MONE                      
    SELECT  @VSTI_CAMB_BASE  =  @CSTI_CAMB              
    SELECT  @VDFE_ASTO_CNTB  =  @CDFE_ASTO_CNTB              
    SELECT  @VSNU_DOCU_REF1  =  @CSNU_DOCU_REF1
    SELECT  @VSDE_GLOS_0001  =  @CSDE_GLOS_0001
    SELECT  @VNNU_MESE_0001  =  @CNNU_MESE

        
    IF  @VSTI_CAMB_BASE  =   'PAC'         
      BEGIN          
         SELECT  @VSTI_CAMB_BASE  =  @CSST_CNTA_CAMB   
      END           
   END   --( If @VSCO_MONE_BASE IS Null )                      
               
   IF  @VSCO_MONE_BASE  IS   NOT   NULL                       
   BEGIN                       
    IF  @VSCO_MONE_BASE  !=  @CSCO_MONE                      
    BEGIN                       
       -- CASO EUROS               
        EXEC  SP_CONV_MONE_Q05 @ISCO_EMPR ,  @CSCO_MONE ,  @VSCO_MONE_BASE ,  @VSCO_MONE_BASE ,  @VSTI_CAMB_BASE ,  @VSTI_CAMB_BASE ,                
      @VNFA_CAMB ,   @VDFE_ASTO_CNTB ,  @CNIM_MVTO_ORIG ,   'P' ,  @CNIM_MVTO_ORIG  OUTPUT                     
    END                       
    IF  @CSTI_OPER_CNTB  =   'ABO'                       
    BEGIN                       
     SELECT  @VNIM_TOTA_ORIG  =   ROUND ( @VNIM_TOTA_ORIG  +  @CNIM_MVTO_ORIG , 2 )                       
     SELECT  @VNIM_TOTA_ORIG_AUXI  =   ROUND (  @VNIM_TOTA_ORIG_AUXI  +  @CNIM_MVTO_ORIG , 2 )               
     SELECT  @VNIM_TOTA_CONT  =   ROUND ( @VNIM_TOTA_CONT  +  @CNIM_MVTO_CNTB , 2 )                             
     SELECT  @VNIM_TOTA_CONT_AUXI  =   ROUND ( @VNIM_TOTA_CONT_AUXI  +  @CNIM_MVTO_CNTB , 2 )                             
    END                       
    ELSE   IF  @CSTI_OPER_CNTB  =   'CAR'                                    
    BEGIN                       
     SELECT  @VNIM_TOTA_ORIG  =   ROUND ( @VNIM_TOTA_ORIG  -  @CNIM_MVTO_ORIG , 2 )                       
     SELECT  @VNIM_TOTA_ORIG_AUXI  =   ROUND (  @VNIM_TOTA_ORIG_AUXI  -  @CNIM_MVTO_ORIG , 2 )               
     SELECT  @VNIM_TOTA_CONT  =   ROUND ( @VNIM_TOTA_CONT  -  @CNIM_MVTO_CNTB , 2 )                             
     SELECT  @VNIM_TOTA_CONT_AUXI  =   ROUND ( @VNIM_TOTA_CONT_AUXI  -  @CNIM_MVTO_CNTB , 2 )                   
     SELECT  @VNIM_TOTA_VARI  =   ROUND ( @VNIM_TOTA_VARI  -  @CNIM_MVTO_CNTB , 2 )
      SELECT  @VNIM_TOTA_VARI_AUXI  =   ROUND ( @VNIM_TOTA_VARI_AUXI  -  @CNIM_MVTO_ORIG , 2 )
     END                       
   END                       
  END   -- ( If @CSID_CNTA = '001' )                      
               
   /*-----  Acumula Movimientos - FONAVI   -----*/                        
  IF  @CSID_CNTA  =   '008'                       
  BEGIN                       
   IF  @VSCO_MONE_BASE  IS   NOT   NULL                       
   BEGIN                       
    SELECT  @VNID_IIES  =  1                
    IF  @VSCO_MONE_BASE  !=  @CSCO_MONE                      
       EXEC  SP_CONV_MONE_Q05 @ISCO_EMPR ,  @CSCO_MONE ,  @VSCO_MONE_BASE ,  @VSCO_MONE_BASE ,  @VSTI_CAMB_BASE ,  @VSTI_CAMB_BASE ,                
      @VNFA_CAMB ,   @VDFE_ASTO_CNTB ,  @CNIM_MVTO_ORIG ,   'P' ,  @CNIM_MVTO_ORIG  OUTPUT                     
    IF  @CSTI_OPER_CNTB  =   'CAR'            
     BEGIN              
     SELECT  @VNIM_FONA_ORIG  =   ROUND ( @VNIM_FONA_ORIG  +  @CNIM_MVTO_ORIG , 2 )                       
     SELECT  @VNIM_FONA_CONT  =   ROUND ( @VNIM_FONA_CONT  +  @CNIM_MVTO_CNTB , 2 )                             
     END              
    ELSE   IF  @CSTI_OPER_CNTB  =   'ABO'                       
     BEGIN              
     SELECT  @VNIM_FONA_ORIG  =   ROUND ( @VNIM_FONA_ORIG  -  @CNIM_MVTO_ORIG , 2 )                       
     --*** select importe contabilidad            
      SELECT  @VNIM_FONA_CONT  =   ROUND ( @VNIM_FONA_CONT  -  @CNIM_MVTO_CNTB , 2 )                    
     --*** select importe contabilidad            
      END               
   END                       
  END   --( If @CSID_CNTA = '008' )              
                       
 /*-----  Acumula Movimientos - IGV  -----*/                       
  IF  @CSID_CNTA  =   '009'                       
  BEGIN                   
   IF  @VSCO_MONE_BASE  IS   NOT   NULL                    
   BEGIN                       
   SELECT  @VNID_IIGV  =  1                    
    IF  @VSCO_MONE_BASE  !=  @CSCO_MONE                      
    BEGIN                       
       EXEC  SP_CONV_MONE_Q05 @ISCO_EMPR ,  @CSCO_MONE ,  @VSCO_MONE_BASE ,  @VSCO_MONE_BASE ,  @VSTI_CAMB_BASE ,  @VSTI_CAMB_BASE ,                
      @VNFA_CAMB ,   @VDFE_ASTO_CNTB ,  @CNIM_MVTO_ORIG ,   'P' ,  @CNIM_MVTO_ORIG  OUTPUT                     
    END                       
    IF  @CSTI_OPER_CNTB  =   'CAR'           
    BEGIN                       
     SELECT  @VNIM_IIGV_ORIG  =   ROUND ( @VNIM_IIGV_ORIG  +  @CNIM_MVTO_ORIG , 2 )    
     --*** select importe contabilidad            
      SELECT  @VNIM_IIGV_CONT  =   ROUND ( @VNIM_IIGV_CONT  +  @CNIM_MVTO_CNTB , 2 )                             
     --*** select importe contabilidad            
     END                       
    ELSE   IF  @CSTI_OPER_CNTB  =   'ABO'                       
    BEGIN                       
     SELECT  @VNIM_IIGV_ORIG  =   ROUND ( @VNIM_IIGV_ORIG  -  @CNIM_MVTO_ORIG , 2 )                       
     --*** select importe contabilidad            
      SELECT  @VNIM_IIGV_CONT  =   ROUND ( @VNIM_IIGV_CONT  -  @CNIM_MVTO_CNTB , 2 )                             
     --*** select importe contabilidad            
     END                       
   END                       
  END   --( If @CSID_CNTA = '009' )                                    
                                    
    /*-----   Acumula Movimientos -  IES    -----*/                 
     IF  @CSID_CNTA  =   '014'                  
       BEGIN     
        IF  @VSCO_MONE_BASE  IS   NOT   NULL                 
         BEGIN                  
           SELECT  @VNID_IIES  =  1                  
           IF  @VSCO_MONE_BASE  !=  @CSCO_MONE                
              BEGIN                 
              EXEC  SP_CONV_MONE_Q05 @ISCO_EMPR ,  @CSCO_MONE ,  @VSCO_MONE_BASE ,  @VSCO_MONE_BASE ,  @VSTI_CAMB_BASE ,  @VSTI_CAMB_BASE ,                
        @VNFA_CAMB ,   @VDFE_ASTO_CNTB ,  @CNIM_MVTO_ORIG ,   'P' ,  @CNIM_MVTO_ORIG  OUTPUT                     
              END                 
           IF  @CSTI_OPER_CNTB  =   'CAR'                 
              BEGIN                   
              SELECT  @VNIM_IIES_ORIG  =   ROUND (  @VNIM_IIES_ORIG  +  @CNIM_MVTO_ORIG , 2 )                 
       --*** select importe contabilidad            
              SELECT  @VNIM_IIES_CONT  =   ROUND ( @VNIM_IIES_CONT  +  @CNIM_MVTO_CNTB , 2 )                             
        --*** select importe contabilidad            
               END                 
     IF  @CSTI_OPER_CNTB  =   'ABO'                  
              BEGIN             
              SELECT  @VNIM_IIES_ORIG  =   ROUND (  @VNIM_IIES_ORIG  -  @CNIM_MVTO_ORIG , 2 )                 
       --*** select importe contabilidad            
               SELECT  @VNIM_IIES_CONT  =   ROUND ( @VNIM_IIES_CONT  -  @CNIM_MVTO_CNTB , 2 )                     
        --*** select importe contabilidad            
               END                 
         END                 
       END                 
                
  /*-----   Acumula Movimientos - 4ta. CAT.   -----*/                       
   IF  @CSID_CNTA  =   '018'                       
   BEGIN                  
    IF  @VSCO_MONE_BASE  IS   NOT   NULL                       
    BEGIN                       
    SELECT  @VNID_RENT  =  1                
     IF  @VSCO_MONE_BASE  !=  @CSCO_MONE                      
     BEGIN                       
          EXEC  SP_CONV_MONE_Q05 @ISCO_EMPR ,  @CSCO_MONE ,  @VSCO_MONE_BASE ,  @VSCO_MONE_BASE ,  @VSTI_CAMB_BASE ,  @VSTI_CAMB_BASE ,                
         @VNFA_CAMB ,   @VDFE_ASTO_CNTB ,  @CNIM_MVTO_ORIG ,   'P' ,  @CNIM_MVTO_ORIG  OUTPUT                     
     END                       
     IF  @CSTI_OPER_CNTB  =   'CAR'                
     BEGIN                
      SELECT  @VNIM_RENT_ORIG  =   ROUND ( @VNIM_RENT_ORIG  +  @CNIM_MVTO_ORIG , 2 )                       
      --*** select importe contabilidad   
       SELECT  @VNIM_RENT_CONT  =   ROUND ( @VNIM_RENT_CONT  +  @CNIM_MVTO_CNTB , 2 )                             
      --*** select importe contabilidad            
      END                       
     ELSE   IF  @CSTI_OPER_CNTB  =   'ABO'                       
     BEGIN                       
      SELECT  @VNIM_RENT_ORIG  =   ROUND ( @VNIM_RENT_ORIG  -  @CNIM_MVTO_ORIG , 2 )                       
   --*** select importe contabilidad            
       SELECT  @VNIM_RENT_CONT  =   ROUND ( @VNIM_RENT_CONT  -  @CNIM_MVTO_CNTB , 2 )                             
      --*** select importe contabilidad            
      END                       
    END   -- (If @VSCO_MONE_BASE IS NOT Null)                      
    END   -- ( If @CSID_CNTA = '010' )                  
   
 /*-----   Acumula Movimientos - impuesto renta No domiciliados    -----*/           
   IF  @CSID_CNTA  =   '033'
    BEGIN                       
    IF  @VSCO_MONE_BASE  IS   NOT   NULL                       
    BEGIN                       
 --   Select @VNID_NDOM = 1                
      IF  @VSCO_MONE_BASE  !=  @CSCO_MONE                      
     BEGIN                       
          EXEC  SP_CONV_MONE_Q05 @ISCO_EMPR ,  @CSCO_MONE ,  @VSCO_MONE_BASE ,  @VSCO_MONE_BASE ,  @VSTI_CAMB_BASE ,  @VSTI_CAMB_BASE ,                
         @VNFA_CAMB ,   @VDFE_ASTO_CNTB ,  @CNIM_MVTO_ORIG ,   'P' ,  @CNIM_MVTO_ORIG  OUTPUT                     
     END                       
     IF  @CSTI_OPER_CNTB  =   'CAR'                       
     BEGIN                       
      SELECT  @VNIM_RENO_ORIG  =   ROUND ( @VNIM_RENO_ORIG  +  @CNIM_MVTO_ORIG , 2 )                       
      --*** select importe contabilidad            
       SELECT  @VNIM_RENO_CONT  =   ROUND ( @VNIM_RENO_CONT  +  @CNIM_MVTO_CNTB , 2 )            
      --*** select importe contabilidad            
      END                       
     ELSE   IF  @CSTI_OPER_CNTB  =   'ABO'                       
     BEGIN                       
      SELECT  @VNIM_RENO_ORIG  =   ROUND ( @VNIM_RENO_ORIG  -  @CNIM_MVTO_ORIG , 2 )                       
      --*** select importe contabilidad            
       SELECT  @VNIM_RENO_CONT  =   ROUND ( @VNIM_RENO_CONT  -  @CNIM_MVTO_CNTB , 2 )                             
      --*** select importe contabilidad            
      END                       
    END   -- (If @VSCO_MONE_BASE IS NOT Null)                      
    END   -- ( If @CSID_CNTA = '010' )                  
   
  /*-----   Acumula Movimientos - cuenta gastos despacho no gravados  -----*/                       
   IF  @CSID_CNTA  =   '034'                       
   BEGIN            
    IF  @VSCO_MONE_BASE  IS   NOT   NULL                      
    BEGIN                       
 --   Select @VNID_GAST = 1                
    IF  @VSCO_MONE_BASE  !=  @CSCO_MONE                      
     BEGIN                       
          EXEC  SP_CONV_MONE_Q05 @ISCO_EMPR ,  @CSCO_MONE ,  @VSCO_MONE_BASE ,  @VSCO_MONE_BASE ,  @VSTI_CAMB_BASE ,  @VSTI_CAMB_BASE ,                
         @VNFA_CAMB ,   @VDFE_ASTO_CNTB ,  @CNIM_MVTO_ORIG ,   'P' ,  @CNIM_MVTO_ORIG  OUTPUT                     
     END                       
 --SELECT 'PERCY', @CSCN_CNTB_EMPR,@CNIM_MVTO_CNTB  
      IF  @CSTI_OPER_CNTB  =   'CAR'                       
     BEGIN                       
      SELECT  @VNIM_GAST_ORIG  =   ROUND ( @VNIM_GAST_ORIG  +  @CNIM_MVTO_ORIG , 2 )                       
      --*** select importe contabilidad            
       SELECT  @VNIM_GAST_CONT  =   ROUND ( @VNIM_GAST_CONT  +  @CNIM_MVTO_CNTB , 2 )                             
      --*** select importe contabilidad            
      END                       
     ELSE   IF  @CSTI_OPER_CNTB  =   'ABO'                       
     BEGIN                       
      SELECT  @VNIM_GAST_ORIG  =   ROUND ( @VNIM_GAST_ORIG  -  @CNIM_MVTO_ORIG , 2 )                       
      --*** select importe contabilidad            
       SELECT  @VNIM_GAST_CONT  =   ROUND ( @VNIM_GAST_CONT  -  @CNIM_MVTO_CNTB , 2 )         
      --*** select importe contabilidad            
      END                       
    END   -- (If @VSCO_MONE_BASE IS NOT Null)          
    END   -- ( If @CSID_CNTA = '010' )      

   /*----- Acumula Movimientos - impuesto igv por aplicar caso no domiciliados -----*/           
 ----- SOLO SI HAY CUENTA DE IGV POR APLICAR ENTONCES PERTENECE A NO DOMICILIADO
    IF  @CSID_CNTA  =   '040'
    BEGIN                       
    IF  @VSCO_MONE_BASE  IS   NOT   NULL                       
    BEGIN                       
    SELECT  @VNID_NDOM  =  1                
     IF  @VSCO_MONE_BASE  !=  @CSCO_MONE                      
     BEGIN                       
          EXEC  SP_CONV_MONE_Q05 @ISCO_EMPR ,  @CSCO_MONE ,  @VSCO_MONE_BASE ,  @VSCO_MONE_BASE ,  @VSTI_CAMB_BASE ,  @VSTI_CAMB_BASE ,                
         @VNFA_CAMB ,   @VDFE_ASTO_CNTB ,  @CNIM_MVTO_ORIG ,   'P' ,  @CNIM_MVTO_ORIG  OUTPUT                     
     END                       
     IF  @CSTI_OPER_CNTB  =   'CAR'                       
     BEGIN                       
      SELECT  @VNIM_POAP_ORIG  =   ROUND ( @VNIM_POAP_ORIG  +  @CNIM_MVTO_ORIG , 2 )               
      --*** select importe contabilidad            
       SELECT  @VNIM_POAP_CONT  =   ROUND ( @VNIM_POAP_CONT  +  @CNIM_MVTO_CNTB , 2 )                             
      --*** select importe contabilidad            
      END                       
     ELSE   IF  @CSTI_OPER_CNTB  =   'ABO'                       
     BEGIN                       
      SELECT  @VNIM_POAP_ORIG  =   ROUND ( @VNIM_POAP_ORIG  -  @CNIM_MVTO_ORIG , 2 )                       
      --*** select importe contabilidad            
 SELECT  @VNIM_POAP_CONT  =   ROUND ( @VNIM_POAP_CONT -  @CNIM_MVTO_CNTB , 2 )                             
      --*** select importe contabilidad            
      END                       
    END   -- (If @VSCO_MONE_BASE IS NOT Null)                      
    END   -- ( If @CSID_CNTA = '010' )                  
                 
                          
 FETCH  CU_TXMVTO_CNTB_Q20_1  INTO                        
    @CDFE_DOCU ,  @CSTI_DOCU_CNTB ,  @CSNU_DOCU ,  @CSCO_UNID ,  @CSCO_OPRC ,  @CNNU_MESE ,                        
    @CSNU_ASTO ,  @CSTI_AUXI_EMPR ,  @CSCO_AUXI ,  @CSCN_CNTB_EMPR ,  @CSTI_OPER_CNTB ,                        
    @CSCO_MONE ,  @CNFA_CAMB ,  @CNIM_MVTO_ORIG ,  @CNIM_MVTO_CNTB ,  @CSID_CNTA ,                       
    @CNPO_REN1 ,  @CNPO_REN2 ,  @CNPO_IGV1 ,       @CNPO_IGV2 ,       @CSTI_DOCU_REFE ,  @CSNU_DOCU_REFE ,  @CDFE_DOCU_REFE ,                   
    @CSCO_EMPR ,  @CDFE_ASTO_CNTB ,  @CSTI_CAMB ,  @CSST_CNTA_CAMB ,  @CDFE_DOCU_VENC ,  @CNFA_CAMB_DIAR , @CSNU_DOCU_REF1 ,
 @CSDE_GLOS_0001
                      
  END                       
  CLOSE  CU_TXMVTO_CNTB_Q20_1                      
  Deallocate  CU_TXMVTO_CNTB_Q20_1                      

 --HALLA LOS RUCS DE PROVEDORES QUE TIENEN AL MENOS UN VALOR DE IMPUESTO A LA RENTA 
 SELECT  @VSCA_WHER_0001  =   '  '
 IF  @ISFL_IMPU  =   'S'
   BEGIN  
   INSERT   INTO  #TWMVTO_ERDP_Q20_2 ( NU_RUCS_PROV )
    SELECT  NU_RUCS_PROV
   FROM  #TWMVTO_ERDP_Q20_1  
   GROUP   BY  NU_RUCS_PROV
   HAVING   IsNull ( SUM ( IsNull ( IM_RENT_CNTB , 0 )), 0 )   >  0

   SELECT  @VSCA_WHER_0001  =   ' And Exists (Select tX.NU_RUCS_PROV From #TWMVTO_ERDP_Q20_2 tX Where tX.NU_RUCS_PROV = t1.NU_RUCS_PROV ) '
   END   
                      
 -- REGISTRO DE HONORARIOS PROFESIONALES                 
 IF  @ISTI_REPO  =   'H'  
 BEGIN  
    IF  @ISTI_PRES  =   'D'                      
     BEGIN
         IF  @ISDE_ORDE_0001  =   'R'
           BEGIN  
           SELECT  @VSDE_ORDE_0001  =   ' Order By t1.NU_RUCS_PROV,t1.NU_MESE,t1.DE_GLOS_0001 '
           END  
        ELSE
           BEGIN  
            SELECT  @VSDE_ORDE_0001  =   ' Order By t1.NO_CORT_PROV,t1.NU_MESE,t1.DE_GLOS_0001 '
           END  

      EXEC ( 'Select t1.NU_MESE,t1.CO_DOCU_SUNA,t1.NU_DOCU_SUNA,t1.NO_CORT_PROV,t1.DE_DIRE_0001,
     t1.DE_GLOS_0001,t1.IM_INAF_CNTB, t1.IM_BASE_RXHH,t1.IM_RENT_CNTB,t1.IM_TOTA_CNTB,
  t1.FE_PAGO
     From #TWMVTO_ERDP_Q20_1 t1
     Where 1=1 '   +  @VSCA_WHER_0001  +  @VSDE_ORDE_0001  )

      END   /*FIN    If @ISTI_PRES = 'D'*/

     IF  @ISTI_PRES  =   'R'
      BEGIN
          IF  @ISDE_ORDE_0001  =   'R'
            BEGIN  
            SELECT  @VSDE_ORDE_0001  =   ' Order By t1.CO_DOCU_SUNA,t1.NU_DOCU_SUNA'
            END  
         ELSE
            BEGIN  
            SELECT  @VSDE_ORDE_0001  =   ' Order By Max(t1.NO_CORT_PROV) '
            END  

      EXEC ( ' Select t1.CO_DOCU_SUNA,t1.NU_DOCU_SUNA,Max(t1.NO_CORT_PROV),Max(t1.DE_DIRE_0001),
     IsNull(Sum(IsNull(t1.IM_INAF_CNTB,0)),0),IsNull(Sum(IsNull(t1.IM_BASE_RXHH,0)),0),
     IsNull(Sum(IsNull(t1.IM_RENT_CNTB,0)),0),IsNull(Sum(IsNull(t1.IM_TOTA_CNTB,0)),0)
     From #TWMVTO_ERDP_Q20_1  t1
     Where 1=1 '   +  @VSCA_WHER_0001  +   ' Group By t1.CO_DOCU_SUNA,t1.NU_DOCU_SUNA '    +  @VSDE_ORDE_0001 )
      END   /*FIN If @ISTI_PRES = 'R'*/
 END                                          

 -- CERTIFICADO DE RENTA Y RETENCIONES 
 IF  @ISTI_REPO  =   'C'  
 BEGIN                

    IF  @ISDE_ORDE_0001  =   'R'
      BEGIN  
     SELECT  @VSDE_ORDE_0001  =   ' Order By NU_RUCS_PROV'
      END  

    ELSE
      BEGIN  
     SELECT  @VSDE_ORDE_0001  =   ' Order By Max(NO_CORT_PROV)'
      END  


     SELECT  @VSDE_EMPR_FORM  =  t1 . DE_NOMB ,
     @VSNU_RUCS_FORM  =  t1 . NU_RUCS ,
 @VSDE_DIRE_FORM  =  t1 . DE_DIRE ,
     @VSNO_REPR_FORM  =  t1 . NO_REPR_LEGA ,
     @VSNU_DNNI_REPR  =  t1 . NU_DOID_REPR ,  
    @VSNO_UBIC_GEOG  =  t2 . NO_UBIC_GEOG
     FROM  TMEMPR t1  LEFT   OUTER   JOIN  TTUBIC_GEOG t2
     ON  t2 . CO_UBIC_GEOG  =  t1 . CO_UBIC_GEOG
     WHERE  t1 . CO_EMPR  =  @ISCO_EMPR 


  SELECT  @VSNU_ANNO_0001  =   CONVERT ( VARCHAR , @INNU_ANNO )
   SELECT  @VDFE_CERT_0001  =   CONVERT ( VARCHAR , @IDFE_CERT , 103 )

EXEC('Select ' + @VSNU_ANNO_0001 + ',Convert(DateTime,"' + @VDFE_CERT_0001 + '",103),
    "' +  @VSDE_EMPR_FORM + '","' + @VSNU_RUCS_FORM + '",
    "' + @VSDE_DIRE_FORM + '","' + @VSNO_REPR_FORM + '","' + @VSNU_DNNI_REPR + '",
    NU_RUCS_PROV,Max(NO_CORT_PROV),Max(DE_DIRE_0001),
    Max(DE_GLOS_0001),"' + @VSSB_MONE_0001 + '","' + @VSDE_MONE + '",
    IsNull(Sum(IsNull(IM_INAF_CNTB,0)),0),
    IsNull(Sum(IsNull(IM_BASE_RXHH,0)),0),
    IsNull(Sum(IsNull(IM_RENT_CNTB,0)),0),
    Day(Convert(DateTime,"' + @VDFE_CERT_0001 + '",103)),
    (Case When Month(Convert(DateTime,"' + @VDFE_CERT_0001 + '",103)) = 1  Then "Enero"
          When Month(Convert(DateTime,"' + @VDFE_CERT_0001 + '",103)) = 2  Then "Febrero"          
          When Month(Convert(DateTime,"' + @VDFE_CERT_0001 + '",103)) = 3  Then "Marzo"           
          When Month(Convert(DateTime,"' + @VDFE_CERT_0001 + '",103)) = 4  Then "Abril"           
          When Month(Convert(DateTime,"' + @VDFE_CERT_0001 + '",103)) = 5  Then "Mayo"           
          When Month(Convert(DateTime,"' + @VDFE_CERT_0001 + '",103)) = 6  Then "Junio"           
          When Month(Convert(DateTime,"' + @VDFE_CERT_0001 + '",103)) = 7  Then "Julio"           
          When Month(Convert(DateTime,"' + @VDFE_CERT_0001 + '",103)) = 8  Then "Agosto"           
          When Month(Convert(DateTime,"' + @VDFE_CERT_0001 + '",103)) = 9  Then "Setiembre"           
          When Month(Convert(DateTime,"' + @VDFE_CERT_0001 + '",103)) = 10 Then "Octubre"           
          When Month(Convert(DateTime,"' + @VDFE_CERT_0001 + '",103)) = 11 Then "Noviembre"           
          When Month(Convert(DateTime,"' + @VDFE_CERT_0001 + '",103)) = 12 Then "Diciembre" End),
    Year(Convert(DateTime,"' + @VDFE_CERT_0001 + '",103)),Max(ID_REGI),"' + @VSNO_UBIC_GEOG + '", ""     
    From #TWMVTO_ERDP_Q20_1  
    Group By NU_RUCS_PROV ' + @VSDE_ORDE_0001 )
    ---Having IsNull(Sum(IsNull(IM_RENT_CNTB,0)),0) > 0

END                            
RETURN
/*----------------------------------------- Fin ------------------------------------------------------*/

 




GO
